// 409. 最长回文串
// 给定一个包含大写字母和小写字母的字符串 s ，返回 通过这些字母构造成的 最长的回文串 。
// 在构造过程中，请注意 区分大小写 。比如 "Aa" 不能当做一个回文字符串。


#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int longestPalindrome(char * s)
{
    int n = strlen(s);
    int *count = malloc(sizeof(int)*1000);
    for(int i = 0;i<1000;i++)
    {
        count[i] = 0;
    }
    for(int i = 0 ; i<n ;i++)
    {
        count[s[i]-'A']++;
    }
    int res = 0;
    int flag = 0;
    for(int i = 0; i<1000 ;i++)
    {
        res+=(count[i]/2)*2;
        if(count[i]%2 == 1)
        flag =1;
    }
    if(flag == 1)res+=1;
    return res;
}

int main()
{
    char *s = "abccccdd";
    printf("最长回文串长度为%d\n",longestPalindrome(s));
    return 0;
}